/*
	Тут работа со всякой периферией
*/
#include "defines.h"

/*
	Настройка светодиодов
*/
void leds_init(void)
{
	  LPC_SC->PCONP     |= (1 << 15);            /* enable power to GPIO & IOCON  */
		
		TEST_LED_PORT->FIODIR |=TEST_LED_PIN;
}

/*
	Инициализация выходов
*/
void outputs_init()
{
	OUTPUT1_PORT->FIODIR |=OUTPUT1_PIN;
	OUTPUT2_PORT->FIODIR |=OUTPUT2_PIN;
	OUTPUT3_PORT->FIODIR |=OUTPUT3_PIN;
}

/*
	Инициализация входов
*/
void inputs_init()
{
	U8 i;
	//Надо убрать pull up
	LPC_PINCON->PINMODE3|= (1<<9)|(1<<11)|(1<<15)|(1<<17)|(1<<19)|(1<<21);
	INPUT0_PORT->FIODIR&=~INPUT0_PIN;
	INPUT1_PORT->FIODIR&=~INPUT1_PIN;
	INPUT2_PORT->FIODIR&=~INPUT2_PIN;
	INPUT3_PORT->FIODIR&=~INPUT3_PIN;
	INPUT4_PORT->FIODIR&=~INPUT4_PIN;
	INPUT5_PORT->FIODIR&=~INPUT5_PIN;
	
	//Считываем входы 
	for(i=0;i<8;i++)
		prevInputs[i] = inputs_read(i);

}

U8 inputs_read(U8 num)
{
	U32 result;
	switch (num)
	{
		case 0: result = INPUT0_READ; break;
		case 1: result = INPUT1_READ; break;
		case 2: result = INPUT2_READ; break;
		case 3: result = INPUT3_READ; break;
		case 4: result = INPUT4_READ; break;
		case 5: result = INPUT5_READ; break;
		default: result = 0; break;
	};
	
	if (result)
		return 1;
	else 
		return 0; 
}

